package com.aio.kgo.simple.form.design.client;

import cn.hutool.core.lang.func.Func1;
import com.aio.kgo.simple.form.common.domain.bo.ModelDefinitionList;
import com.aio.kgo.simple.form.common.domain.save.ModelDefinitionDo;

import java.util.List;

public interface SimpleModelClient {
    <T> void batchFilterModelName(List<T> list, Func1<T,String> modelIdField,Func1<T,String> setModelNameField);
    <T> void filterModelName(T object, Func1<T,String> modelIdField,Func1<T,String> setModelNameField);
    String getModelNameById(String modelId);
    /**
     * 根据模型Key和所属模块获取模型
     * @param modelKey
     * @param module
     * @return
     */
    ModelDefinitionDo getModelByKeyAndModule(String modelKey, String module);

    /**
     * 获取模块的所有模型定义
     * @param module
     * @return
     */
    ModelDefinitionList getModelsByModule(String module);

    /**
     * 模型设计器定义
     * @param modelId 模型ID
     * @return
     */
    Object getModelDesign(String modelId);

}
